package com.wangshili.sys.dao;

import java.util.List;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import com.wangshili.pojo.common.vo.CheckBox;
import com.wangshili.pojo.sys.entity.SysRole;
import com.wangshili.sys.vo.SysRoleMenu;

/**
 * 角色持久层接口
 * @author wangshili
 *
 */
@Mapper
public interface SysRoleDao {
	
	/**
	 * 统计名字出现次数
	 * @param name
	 * @return
	 */
	int countRoleByName(@Param("name") String name);

	/**
	 * 根据名字和起始位置和单页的数据数量来查询
	 * @param name
	 * @param startIndex
	 * @param pageSize
	 * @return
	 */
	List<SysRole> listRoleObjects(
			@Param("name") String name,
			@Param("startIndex")Integer startIndex,
			@Param("pageSize")Integer pageSize);
	
	/**
	 * 插入一行角色信息
	 * @param entity SysRole对象
	 * @return
	 */
	int insertRoleObject(SysRole entity);
	
	/**
	 * 根据id删除一行数据
	 * @param id
	 * @return
	 */
	int deleteRoleObjectById(Integer id);
	
	/**
	 * 根据id查找
	 * @param id
	 * @return
	 */
	SysRoleMenu findObjectById(Integer id);
	
	/**
	 * 更新数据
	 * @param entity
	 * @return
	 */
	int updateRoleObject(SysRole entity);
	
	/**
	 * 查询所有的角色信息，只返回id和name并用CheckBox封装
	 * @return
	 */
	List<CheckBox> findCheckBoxObjects();
}
